#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct gold {
    int m, v;
    double k;
    gold(int x, int y, double z): m(x), v(y), k(z) {}
};
vector<gold> a;
bool compare(gold& x, gold& y) {
    return x.k > y.k;
}
int main() {
    int n, t;
    cin >> n >> t;
    while(n--) {
        int m, v;
        cin >> m >> v;
        double k =((double)v) / m;
        a.push_back(gold(m, v, k));
    }
    sort(a.begin(), a.end(), compare);
    double ans = 0;
    for(int i = 0; i < a.size(); i++) {
        if(t > a[i].m) {
            ans += a[i].v;
            t -= a[i].m;
        }else {
            ans += t * a[i].k;
            break;
        }
    }
    printf("%.2lf", ans);
    return 0;
}